
package controler;


import java.util.ArrayList;
import java.util.Iterator;

import vue.panels.ListTablesPanel;

/**
 * <p>Title: controler.Table </p>
 *
 * <p>Description: TODO </p>
 *
 * <p>Copyright: (c) 2008 FSSIM</p>
 *
 * <p>Company: FSSImock</p>
 *
 * @author Antoine Farnault
 * @author Augustin Couette
 * @version 1.0
 */
public class Table {
	public String nom;          // le nom
	public String theme;        // le theme
	public String proprietaire; // son proprietaire
	public int capacite;        // nombre de joueurs max
	public String motDePasse;   // le mot de passe de la table ou ""
	public boolean privee;      // si privee ou pas
	public ArrayList<String> pseudos; // liste de personne sur la table
	public int nombreJoueurs = 0;
	public ArrayList<Case> claquos = new ArrayList<Case>(); 
	
	/**
	 * Constructeur de table
	 * @param nom
	 * @param theme
	 * @param proprietaire
	 * @param nombreJoueurs
	 * @param motDePasse
	 */
	public Table(String nom,String theme,String proprietaire, int nombreJoueurs, int capacite,String motDePasse,boolean privee){
		this.nom = nom;
		this.theme = theme;
		this.proprietaire = proprietaire;
		this.capacite = capacite;
		this.motDePasse = motDePasse;
		this.privee = privee;
		pseudos = new ArrayList<String>();
		this.nombreJoueurs = nombreJoueurs;
	}
	
	/**
	 *@return une table sous forme de chaine de caractere
	 */
	public String toString(){
		return "[nom:"+nom+
				",theme:"+theme+
				",proprietaire:"+proprietaire+
				",privee:"+privee+
				",motDePasse:"+motDePasse+"" +
				",pseudos:"+pseudos+"" +
						"]";
	}
	
	public static Table getTableByName(String name){
		Iterator<Table> it = ListTablesPanel.listTableModel.rowsData.iterator();
		while(it.hasNext()){
			Table t = it.next();
			if(t.nom.equalsIgnoreCase(name)){
				return t;
			}
		}
		return null;
	}

	public static int getTableIndexByName(String name) {
		Iterator<Table> it = ListTablesPanel.listTableModel.rowsData.iterator();
		int cpt = 0;
		while(it.hasNext()){
			Table t = it.next();
			if(t.nom.equalsIgnoreCase(name)){
				return cpt;
			}
			cpt ++;
		}
		return -1;
	}

	public void ajouterClaquos() {
		Case c = Joueur.caseRepondue;
		if(claquos.contains(c)) return; // si il a deja ce camembert
		System.out.println("ajout claquos "+c+" :::::::::::::: "+claquos.size());
		claquos.add(c);
	}
}
